Skip to content

fix: Windows install bugs + CRLF line ending enforcement#78

Merged
Lightheartdevs merged 2 commits intomainfrom
fix/windows-install-testing
Mar 9, 2026
Merged

fix: Windows install bugs + CRLF line ending enforcement#78
Lightheartdevs merged 2 commits intomainfrom
fix/windows-install-testing

Conversation

@Lightheartdevs
Copy link
Copy Markdown
Collaborator

Summary

Full Windows install test on a fresh clone revealed three bugs that crash the installer or its services. All verified fixed with 16/16 containers healthy.

  • install.ps1 parameter forwarding: ValueFromRemainingArguments + array splatting passes -DryRun as a positional string to $Tier, crashing with "Invalid tier: -DRYRUN". Fixed with matching param declarations + @PSBoundParameters hashtable splatting.
  • OpenClaw crash-loop: PR fix(security): bind OpenClaw gateway to localhost only #67 changed --bind lan--bind localhost (invalid value). --bind loopback also fails because container-internal loopback breaks Docker port forwarding. Reverted to --bind lan — security is already enforced by 127.0.0.1:7860:18789 host port mapping.
  • Shell script CRLF: Every .sh file in the repo gets CRLF line endings on Windows checkout (core.autocrlf). Any script bind-mounted into a Docker container crashes with exec: no such file or directory because the kernel reads #!/bin/sh\r. Added .gitattributes enforcing eol=lf for .sh, .yaml, Dockerfile*.
  • Health check timeout: Increased from 30→60 attempts (60s→120s) for large model loads on first boot.

Test plan

  • install.ps1 -DryRun passes all 6 phases (was crashing at tier-map.ps1:99)
  • Full install with -All: 16/16 containers healthy
  • Whisper container starts (was crash-looping on CRLF shebang)
  • OpenClaw container starts and serves Control UI on port 7860
  • llama-server loads 18GB model within extended health check window

🤖 Generated with Claude Code

Lightheartdevs and others added 2 commits March 9, 2026 00:55
Windows Git's core.autocrlf converts LF→CRLF on checkout, which
breaks shell shebangs inside Linux Docker containers. The kernel
reads #!/bin/sh\r and fails with "no such file or directory".

Add .gitattributes to enforce eol=lf for .sh, .yaml, Dockerfile,
and other files that run in Linux contexts. Convert all existing
shell scripts from CRLF to LF.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Three bugs discovered by running the installer on a fresh clone:

1. install.ps1 parameter forwarding: ValueFromRemainingArguments
   with array splatting mangles switch params (-DryRun) into
   positional strings that land in $Tier. Replace with matching
   param declarations and @PSBoundParameters hashtable splatting.

2. OpenClaw --bind: revert PR #67's --bind localhost (invalid value)
   back to --bind lan. Inside a container, loopback binding breaks
   Docker port forwarding. Security is already enforced by the
   127.0.0.1 prefix on the host port mapping.

3. Health check timeout: increase from 30 to 60 attempts (60s→120s)
   to accommodate large model load times (18GB GGUF on first boot).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@Lightheartdevs Lightheartdevs merged commit 58d7311 into main Mar 9, 2026
4 of 15 checks passed
yasinBursali added a commit to yasinBursali/DreamServer that referenced this pull request Mar 21, 2026
…ulting to 'change-me'

The SECRET_KEY was defaulting to the well-known string 'change-me' via
${:-change-me}, allowing session/CSRF token forgery. Switch to ${:?...}
so compose fails fast when the variable is unset, forcing the deployer
to generate a proper secret.

Closes Light-Heart-Labs#78

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Lightheartdevs pushed a commit that referenced this pull request Mar 23, 2026
…ulting to 'change-me' (#526)

The SECRET_KEY was defaulting to the well-known string 'change-me' via
${:-change-me}, allowing session/CSRF token forgery. Switch to ${:?...}
so compose fails fast when the variable is unset, forcing the deployer
to generate a proper secret.

Closes #78

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant